經過昨天說的建立GKE想必應該已經有了自己的叢集了,那如何在GCP上去使用GKE呢?可以參考下圖:
以這張圖來說,可以透過Google上面的Container Registry儲存空間去儲存Image,使用Deployment部署使用服務,(至於關於詳細Container Registry後面會在心得分享),這邊會先說明如何將自己寫的服務讓他在GKE上運行首先可以寫一個簡單的golang Print "Hello World" 服務後再專案後寫一個簡單的Dockerfile 如下:
RUN mkdir -p /go/src/test
COPY ./ /go/src/test
WORKDIR /go/src/test
RUN cd /go/src/test && go build -o Test
ENTRYPOINT ["./Test"]
執行結果如下圖:
建立起Image後可以將其Image推向Container Registry這邊設定成GCP私倉(這邊因為會使用docker指令推向指定GCP上的私倉所以在IAM上需要開權限才可以使用以下指令)
docker tag gcr.io/PROJECT_ID/test:latest gcr.io/PROJECT_ID/test:latest
docker push gcr.io/PROJECT_ID/test:latest
這時就可以在GPC上的Container Registry中看到本機建立的Image,後續只需要撰寫Deployment Service即可apply上GKE大致如下(Deployment):
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-deployment
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: test:latest
關於上述提到的部署方式可以說是就是k8s的部署方式,基本上可以完全的使用kubectl指令方式執行與查看:
kubectl apply -f test.yaml
kubectl get pod -n {namespace} |grep test-deployment